namespace ext.form
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Base class for form fields that provides default event handling, sizing, value handling and other functionality.</summary>
	/// <definedin>src\widgets\form\Field.js</definedin>
	[ScriptName("Field")]
	[ScriptNamespace("Ext.form")]
	[Imported()]
	public partial class Field : ext.BoxComponent
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">Configuration options</param>
		public Field(ext.form.Field_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public Field()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// The type attribute for input fields -- e.g. radio, text, password, file (defaults
		/// to &apos;text&apos;). The types &apos;file&apos; and &apos;password&apos; must be used to render those field types currently -- there are
		/// no separate Ext components for those. Note that if you use inputType:&apos;file&apos;, {@link #emptyText}
		/// is not supported and should be avoided.
		/// </summary>
		/// <htmlSummary>
		/// The type attribute for input fields -- e.g. radio, text, password, file (defaults
		/// to &apos;text&apos;). The types &apos;file&apos; and &apos;password&apos; must be used to render those field types currently -- there are
		/// no separate Ext components for those. Note that if you use &lt;tt&gt;inputType:&apos;file&apos;&lt;/tt&gt;, {@link #emptyText}
		/// is not supported and should be avoided.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("inputType")]
		public string InputType;
		
		/// <summary>
		/// The tabIndex for this field. Note this only applies to fields that are rendered,
		/// not those which are built via applyTo (defaults to undefined).
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("tabIndex")]
		public System.Number TabIndex;
		
		/// <summary>A value to initialize this field with (defaults to undefined).</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("value")]
		public object Value;
		
		/// <summary>
		/// The field&apos;s HTML name attribute (defaults to &apos;&apos;).
		/// Note: this property must be set if this field is to be automatically included with
		/// {@link Ext.form.BasicForm#submit form submit()}.
		/// </summary>
		/// <htmlSummary>
		/// The field&apos;s HTML name attribute (defaults to &apos;&apos;).
		/// &lt;b&gt;Note&lt;/b&gt;: this property must be set if this field is to be automatically included with
		/// {@link Ext.form.BasicForm#submit form submit()}.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("name")]
		public string Name;
		
		/// <summary>A custom CSS class to apply to the field&apos;s underlying element (defaults to &apos;&apos;).</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("cls")]
		public string Cls;
		
		/// <summary>The CSS class to use when marking a field invalid (defaults to &apos;x-form-invalid&apos;)</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("invalidClass")]
		public string InvalidClass;
		
		/// <summary>
		/// The error text to use when marking a field invalid and no message is provided
		/// (defaults to &apos;The value in this field is invalid&apos;)
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("invalidText")]
		public string InvalidText;
		
		/// <summary>The CSS class to use when the field receives focus (defaults to &apos;x-form-focus&apos;)</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("focusClass")]
		public string FocusClass;
		
		/// <summary>
		/// true to disable {@link #markInvalid marking the field invalid}.
		/// Defaults to false.
		/// </summary>
		/// <htmlSummary>
		/// &lt;tt&gt;true&lt;/tt&gt; to disable {@link #markInvalid marking the field invalid}.
		/// Defaults to &lt;tt&gt;false&lt;/tt&gt;.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("preventMark")]
		public bool PreventMark;
		
		/// <summary>
		/// The event that should initiate field validation. Set to false to disable
		/// automatic validation (defaults to &apos;keyup&apos;).
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("validationEvent")]
		public ext.auto.System_Boolean_Or_System_String ValidationEvent;
		
		/// <summary>Whether the field should validate when it loses focus (defaults to true).</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("validateOnBlur")]
		public bool ValidateOnBlur;
		
		/// <summary>
		/// The length of time in milliseconds after user input begins until validation
		/// is initiated (defaults to 250)
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("validationDelay")]
		public System.Number ValidationDelay;
		
		/// <summary>
		/// A {@link Ext.DomHelper DomHelper} element spec, or true for a default
		/// element spec. Used to create the {@link Ext.Component#getEl Element} which will encapsulate this Component.
		/// See {@link Ext.Component#autoEl autoEl} for details. Defaults to:  {tag: &apos;input&apos;, type: &apos;text&apos;, size: &apos;20&apos;, autocomplete: &apos;off&apos;}
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;A {@link Ext.DomHelper DomHelper} element spec, or true for a default
		/// element spec. Used to create the {@link Ext.Component#getEl Element} which will encapsulate this Component.
		/// See &lt;tt&gt;{@link Ext.Component#autoEl autoEl}&lt;/tt&gt; for details. Defaults to:&lt;/p&gt;
		/// &lt;pre&gt;&lt;code&gt;{tag: &apos;input&apos;, type: &apos;text&apos;, size: &apos;20&apos;, autocomplete: &apos;off&apos;}&lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("autoCreate")]
		public ext.auto.System_String_Or_System_Object AutoCreate;
		
		/// <summary>The default CSS class for the field (defaults to &apos;x-form-field&apos;)</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("fieldClass")]
		public string FieldClass;
		
		/// <summary>
		/// The location where the message text set through {@link #markInvalid} should display.
		/// Must be one of the following values:    qtip Display a quick tip containing the message when the user hovers over the field. This is the default.
		/// {@link Ext.QuickTips#init Ext.QuickTips.init} must have been called for this setting to work.  title Display the message in a default browser title attribute popup.  under Add a block div beneath the field containing the error message.  side Add an error icon to the right of the field, displaying the message in a popup on hover.  [element id] Add the error message directly to the innerHTML of the specified element.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The location where the message text set through {@link #markInvalid} should display.
		/// Must be one of the following values:&lt;/p&gt;
		/// &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;code&gt;qtip&lt;/code&gt; Display a quick tip containing the message when the user hovers over the field. This is the default.
		/// &lt;div class=&quot;subdesc&quot;&gt;&lt;b&gt;{@link Ext.QuickTips#init Ext.QuickTips.init} must have been called for this setting to work.&lt;/b&gt;&lt;/div&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;title&lt;/code&gt; Display the message in a default browser title attribute popup.&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;under&lt;/code&gt; Add a block div beneath the field containing the error message.&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;side&lt;/code&gt; Add an error icon to the right of the field, displaying the message in a popup on hover.&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;[element id]&lt;/code&gt; Add the error message directly to the innerHTML of the specified element.&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("msgTarget")]
		public string MsgTarget;
		
		/// <summary>
		/// Experimental The effect used when displaying a validation message under the field
		/// (defaults to &apos;normal&apos;).
		/// </summary>
		/// <htmlSummary>
		/// &lt;b&gt;Experimental&lt;/b&gt; The effect used when displaying a validation message under the field
		/// (defaults to &apos;normal&apos;).
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("msgFx")]
		public string MsgFx;
		
		/// <summary>
		/// true to mark the field as readOnly in HTML
		/// (defaults to false).
		/// </summary>
		/// <htmlSummary>
		/// &lt;tt&gt;true&lt;/tt&gt; to mark the field as readOnly in HTML
		/// (defaults to &lt;tt&gt;false&lt;/tt&gt;).
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this only sets the element&apos;s readOnly DOM attribute.
		/// Setting &lt;code&gt;readOnly=true&lt;/code&gt;, for example, will not disable triggering a
		/// ComboBox or DateField; it gives you the option of forcing the user to choose
		/// via the trigger without typing in the text box. To hide the trigger use
		/// &lt;code&gt;{@link Ext.form.TriggerField#hideTrigger hideTrigger}&lt;/code&gt;.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("readOnly")]
		public bool ReadOnly;
		
		/// <summary>
		/// True to disable the field (defaults to false).
		/// Be aware that conformant with the HTML specification,
		/// disabled Fields will not be {@link Ext.form.BasicForm#submit submitted}.
		/// </summary>
		/// <htmlSummary>
		/// True to disable the field (defaults to false).
		/// &lt;p&gt;Be aware that conformant with the &lt;a href=&quot;http://www.w3.org/TR/html401/interact/forms.html#h-17.12.1&quot;&gt;HTML specification&lt;/a&gt;,
		/// disabled Fields will not be {@link Ext.form.BasicForm#submit submitted}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("disabled")]
		public bool Disabled;
		
		/// <summary>
		/// False to clear the name attribute on the field so that it is not submitted during a form post.
		/// Defaults to true.
		/// </summary>
		/// <htmlSummary>
		/// False to clear the name attribute on the field so that it is not submitted during a form post.
		/// Defaults to &lt;tt&gt;true&lt;/tt&gt;.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("submitValue")]
		public bool SubmitValue;
		
		/// <summary>Fires when this field receives input focus.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("focusEventName")]
		public const string FocusEventName = "focus";
		
		/// <summary>Fires when this field loses input focus.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("blurEventName")]
		public const string BlurEventName = "blur";
		
		/// <summary>
		/// Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.
		/// To handle other keys see {@link Ext.Panel#keys} or {@link Ext.KeyMap}.
		/// You can check {@link Ext.EventObject#getKey} to determine which key was pressed.
		/// For example:  
		/// var form = new Ext.form.FormPanel({
		/// ...
		/// items: [{
		/// fieldLabel: &apos;Field 1&apos;,
		/// name: &apos;field1&apos;,
		/// allowBlank: false
		/// },{
		/// fieldLabel: &apos;Field 2&apos;,
		/// name: &apos;field2&apos;,
		/// listeners: {
		/// specialkey: function(field, e){
		/// // e.HOME, e.END, e.PAGE_UP, e.PAGE_DOWN,
		/// // e.TAB, e.ESC, arrow keys: e.LEFT, e.RIGHT, e.UP, e.DOWN
		/// if (e.{@link Ext.EventObject#getKey getKey()} == e.ENTER) {
		/// var form = field.ownerCt.getForm();
		/// form.submit();
		/// }
		/// }
		/// }
		/// }
		/// ],
		/// ...
		/// });
		/// </summary>
		/// <htmlSummary>
		/// Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.
		/// To handle other keys see {@link Ext.Panel#keys} or {@link Ext.KeyMap}.
		/// You can check {@link Ext.EventObject#getKey} to determine which key was pressed.
		/// For example: &lt;pre&gt;&lt;code&gt;
		/// var form = new Ext.form.FormPanel({
		/// ...
		/// items: [{
		/// fieldLabel: &apos;Field 1&apos;,
		/// name: &apos;field1&apos;,
		/// allowBlank: false
		/// },{
		/// fieldLabel: &apos;Field 2&apos;,
		/// name: &apos;field2&apos;,
		/// listeners: {
		/// specialkey: function(field, e){
		/// // e.HOME, e.END, e.PAGE_UP, e.PAGE_DOWN,
		/// // e.TAB, e.ESC, arrow keys: e.LEFT, e.RIGHT, e.UP, e.DOWN
		/// if (e.{@link Ext.EventObject#getKey getKey()} == e.ENTER) {
		/// var form = field.ownerCt.getForm();
		/// form.submit();
		/// }
		/// }
		/// }
		/// }
		/// ],
		/// ...
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("specialkeyEventName")]
		public const string SpecialkeyEventName = "specialkey";
		
		/// <summary>Fires just before the field blurs if the field value has changed.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("changeEventName")]
		public const string ChangeEventName = "change";
		
		/// <summary>Fires after the field has been marked as invalid.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("invalidEventName")]
		public const string InvalidEventName = "invalid";
		
		/// <summary>Fires after the field has been validated with no errors.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("validEventName")]
		public const string ValidEventName = "valid";
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("autoWidth")]
		public bool AutoWidth;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("autoHeight")]
		public bool AutoHeight;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("autoEl")]
		public string AutoEl;
		#endregion
		
		#region Properties
		/// <summary>
		/// The label Element associated with this Field. Only available after this Field has been rendered by a
		/// {@link form Ext.layout.FormLayout} layout manager.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The label Element associated with this Field. &lt;b&gt;Only available after this Field has been rendered by a
		/// {@link form Ext.layout.FormLayout} layout manager.&lt;/b&gt;&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("label")]
		[IntrinsicProperty()]
		public ext.Element Label
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>
		/// The original value of the field as configured in the {@link #value} configuration, or
		/// as loaded by the last form load operation if the form&apos;s {@link Ext.form.BasicForm#trackResetOnLoad trackResetOnLoad}
		/// setting is true.
		/// </summary>
		/// <htmlSummary>
		/// The original value of the field as configured in the {@link #value} configuration, or
		/// as loaded by the last form load operation if the form&apos;s {@link Ext.form.BasicForm#trackResetOnLoad trackResetOnLoad}
		/// setting is &lt;code&gt;true&lt;/code&gt;.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("originalValue")]
		[IntrinsicProperty()]
		public object OriginalValue
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>
		/// The value that the Field had at the time it was last focused. This is the value that is passed
		/// to the {@link #change} event which is fired if the value has been changed when the Field is blurred.  This will be undefined until the Field has been visited. Compare {@link #originalValue}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The value that the Field had at the time it was last focused. This is the value that is passed
		/// to the {@link #change} event which is fired if the value has been changed when the Field is blurred.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;This will be undefined until the Field has been visited.&lt;/b&gt; Compare {@link #originalValue}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("startValue")]
		[IntrinsicProperty()]
		public object StartValue
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>
		/// Returns the {@link Ext.form.Field#name name} or {@link Ext.form.ComboBox#hiddenName hiddenName}
		/// attribute of the field if available.
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>name The field {@link Ext.form.Field#name name} or {@link Ext.form.ComboBox#hiddenName hiddenName}</returns>
		[ScriptName("getName")]
		public string GetName()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Returns true if the value of this Field has been changed from its original value.
		/// Will return false if the field is disabled or has not been rendered yet.  Note that if the owning {@link Ext.form.BasicForm form} was configured with
		/// {@link Ext.form.BasicForm}.{@link Ext.form.BasicForm#trackResetOnLoad trackResetOnLoad}
		/// then the original value is updated when the values are loaded by
		/// {@link Ext.form.BasicForm}.{@link Ext.form.BasicForm#setValues setValues}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Returns true if the value of this Field has been changed from its original value.
		/// Will return false if the field is disabled or has not been rendered yet.&lt;/p&gt;
		/// &lt;p&gt;Note that if the owning {@link Ext.form.BasicForm form} was configured with
		/// {@link Ext.form.BasicForm}.{@link Ext.form.BasicForm#trackResetOnLoad trackResetOnLoad}
		/// then the &lt;i&gt;original value&lt;/i&gt; is updated when the values are loaded by
		/// {@link Ext.form.BasicForm}.{@link Ext.form.BasicForm#setValues setValues}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>
		/// True if this field has been changed from its original value (and
		/// is not disabled), false otherwise.
		/// </returns>
		[ScriptName("isDirty")]
		public bool IsDirty()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the read only state of this field.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="readOnly">Whether the field should be read only.</param>
		[ScriptName("setReadOnly")]
		public void SetReadOnly(bool readOnly)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Resets the current field value to the originally loaded value and clears any validation messages.
		/// See {@link Ext.form.BasicForm}.{@link Ext.form.BasicForm#trackResetOnLoad trackResetOnLoad}
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("reset")]
		public void Reset()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Returns whether or not the field value is currently valid by
		/// {@link #validateValue validating} the {@link #processValue processed value}
		/// of the field. Note: {@link #disabled} fields are ignored.
		/// </summary>
		/// <htmlSummary>
		/// Returns whether or not the field value is currently valid by
		/// {@link #validateValue validating} the {@link #processValue processed value}
		/// of the field. &lt;b&gt;Note&lt;/b&gt;: {@link #disabled} fields are ignored.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="preventMark">True to disable marking the field invalid</param>
		/// <returns>True if the value is valid, else false</returns>
		[ScriptName("isValid")]
		public bool IsValid(bool preventMark)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Validates the field value</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>True if the value is valid, else false</returns>
		[ScriptName("validate")]
		public bool Validate()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// This method should only be overridden if necessary to prepare raw values
		/// for validation (see {@link #validate} and {@link #isValid}). This method
		/// is expected to return the processed value for the field which will
		/// be used for validation (see validateValue method).
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="value"></param>
		[ScriptName("processValue")]
		public void ProcessValue(object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Uses getErrors to build an array of validation errors. If any errors are found, markInvalid is called
		/// with the first and false is returned, otherwise true is returned. Previously, subclasses were invited
		/// to provide an implementation of this to process validations - from 3.2 onwards getErrors should be
		/// overridden instead.
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="The">current value of the field</param>
		/// <returns>True if all validations passed, false if one or more failed</returns>
		[ScriptName("validateValue")]
		public bool ValidateValue(object The)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Runs this field&apos;s validators and returns an array of error messages for any validation failures.
		/// This is called internally during validation and would not usually need to be used manually.
		/// Each subclass should override or augment the return value to provide their own errors
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>All error messages for this field</returns>
		[ScriptName("getErrors")]
		public System.Array GetErrors()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the active error message for this field.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>Returns the active error message on the field, if there is no error, an empty string is returned.</returns>
		[ScriptName("getActiveError")]
		public string GetActiveError()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Clear any invalid styles/messages for this field</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("clearInvalid")]
		public void ClearInvalid()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sets the current activeError to the given string. Fires the &apos;invalid&apos; event.
		/// This does not set up the error icon, only sets the message and fires the event. To show the error icon,
		/// use markInvalid instead, which calls this method internally
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="msg">The error message</param>
		/// <param name="suppressEvent">True to suppress the &apos;invalid&apos; event from being fired</param>
		[ScriptName("setActiveError")]
		public void SetActiveError(string msg, bool suppressEvent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Clears the activeError and fires the &apos;valid&apos; event. This is called internally by clearInvalid and would not
		/// usually need to be called manually
		/// </summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="suppressEvent">True to suppress the &apos;invalid&apos; event from being fired</param>
		[ScriptName("unsetActiveError")]
		public void UnsetActiveError(bool suppressEvent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see {@link #getValue}.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>value The field value</returns>
		[ScriptName("getRawValue")]
		public object GetRawValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the normalized data value (undefined or emptyText will be returned as &apos;&apos;). To return the raw value see {@link #getRawValue}.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <returns>value The field value</returns>
		[ScriptName("getValue")]
		public object GetValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the underlying DOM field&apos;s value directly, bypassing validation. To set the value with validation see {@link #setValue}.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="value">The value to set</param>
		/// <returns>value The field value that is set</returns>
		[ScriptName("setRawValue")]
		public object SetRawValue(object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets a data value into the field and validates it. To set the value directly without validation see {@link #setRawValue}.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="value">The value to set</param>
		/// <returns>this</returns>
		[ScriptName("setValue")]
		public ext.form.Field SetValue(object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Display an error message associated with this field, using {@link #msgTarget} to determine how to
		/// display the message and applying {@link #invalidClass} to the field&apos;s UI element.  Note: this method does not cause the Field&apos;s {@link #validate} method to return false
		/// if the value does pass validation. So simply marking a Field as invalid will not prevent
		/// submission of forms submitted with the {@link Ext.form.Action.Submit#clientValidation} option set. 
		/// {@link #isValid invalid}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Display an error message associated with this field, using {@link #msgTarget} to determine how to
		/// display the message and applying {@link #invalidClass} to the field&apos;s UI element.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this method does not cause the Field&apos;s {@link #validate} method to return &lt;code&gt;false&lt;/code&gt;
		/// if the value does &lt;i&gt;pass&lt;/i&gt; validation. So simply marking a Field as invalid will not prevent
		/// submission of forms submitted with the {@link Ext.form.Action.Submit#clientValidation} option set.&lt;/p&gt;
		/// {@link #isValid invalid}.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		/// <param name="msg">The validation message (defaults to {@link #invalidText})</param>
		[ScriptName("markInvalid")]
		public void MarkInvalid(string msg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Display an error message associated with this field, using {@link #msgTarget} to determine how to
		/// display the message and applying {@link #invalidClass} to the field&apos;s UI element.  Note: this method does not cause the Field&apos;s {@link #validate} method to return false
		/// if the value does pass validation. So simply marking a Field as invalid will not prevent
		/// submission of forms submitted with the {@link Ext.form.Action.Submit#clientValidation} option set. 
		/// {@link #isValid invalid}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Display an error message associated with this field, using {@link #msgTarget} to determine how to
		/// display the message and applying {@link #invalidClass} to the field&apos;s UI element.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this method does not cause the Field&apos;s {@link #validate} method to return &lt;code&gt;false&lt;/code&gt;
		/// if the value does &lt;i&gt;pass&lt;/i&gt; validation. So simply marking a Field as invalid will not prevent
		/// submission of forms submitted with the {@link Ext.form.Action.Submit#clientValidation} option set.&lt;/p&gt;
		/// {@link #isValid invalid}.
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("markInvalid")]
		public void MarkInvalid()
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when this field receives input focus.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("focus")]
		public event ext.auto.Delegate_ext_form_Field Focus;
		
		/// <summary>Fires when this field loses input focus.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("blur")]
		public event ext.auto.Delegate_ext_form_Field Blur;
		
		/// <summary>
		/// Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.
		/// To handle other keys see {@link Ext.Panel#keys} or {@link Ext.KeyMap}.
		/// You can check {@link Ext.EventObject#getKey} to determine which key was pressed.
		/// For example:  
		/// var form = new Ext.form.FormPanel({
		/// ...
		/// items: [{
		/// fieldLabel: &apos;Field 1&apos;,
		/// name: &apos;field1&apos;,
		/// allowBlank: false
		/// },{
		/// fieldLabel: &apos;Field 2&apos;,
		/// name: &apos;field2&apos;,
		/// listeners: {
		/// specialkey: function(field, e){
		/// // e.HOME, e.END, e.PAGE_UP, e.PAGE_DOWN,
		/// // e.TAB, e.ESC, arrow keys: e.LEFT, e.RIGHT, e.UP, e.DOWN
		/// if (e.{@link Ext.EventObject#getKey getKey()} == e.ENTER) {
		/// var form = field.ownerCt.getForm();
		/// form.submit();
		/// }
		/// }
		/// }
		/// }
		/// ],
		/// ...
		/// });
		/// </summary>
		/// <htmlSummary>
		/// Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.
		/// To handle other keys see {@link Ext.Panel#keys} or {@link Ext.KeyMap}.
		/// You can check {@link Ext.EventObject#getKey} to determine which key was pressed.
		/// For example: &lt;pre&gt;&lt;code&gt;
		/// var form = new Ext.form.FormPanel({
		/// ...
		/// items: [{
		/// fieldLabel: &apos;Field 1&apos;,
		/// name: &apos;field1&apos;,
		/// allowBlank: false
		/// },{
		/// fieldLabel: &apos;Field 2&apos;,
		/// name: &apos;field2&apos;,
		/// listeners: {
		/// specialkey: function(field, e){
		/// // e.HOME, e.END, e.PAGE_UP, e.PAGE_DOWN,
		/// // e.TAB, e.ESC, arrow keys: e.LEFT, e.RIGHT, e.UP, e.DOWN
		/// if (e.{@link Ext.EventObject#getKey getKey()} == e.ENTER) {
		/// var form = field.ownerCt.getForm();
		/// form.submit();
		/// }
		/// }
		/// }
		/// }
		/// ],
		/// ...
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("specialkey")]
		public event ext.auto.Delegate_ext_form_Field_And_ext_EventObject Specialkey;
		
		/// <summary>Fires just before the field blurs if the field value has changed.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("change")]
		public event ext.auto.Delegate_ext_form_Field_And_System_Object_And_System_Object Change;
		
		/// <summary>Fires after the field has been marked as invalid.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("invalid")]
		public event ext.auto.Delegate_ext_form_Field_And_System_String Invalid;
		
		/// <summary>Fires after the field has been validated with no errors.</summary>
		/// <definedin>src\widgets\form\Field.js</definedin>
		[ScriptName("valid")]
		public event ext.auto.Delegate_ext_form_Field Valid;
		#endregion
	}
}
